/**
 * 用户头像管理工具
 * 统一处理头像显示逻辑，避免写死路径
 */

// 默认头像配置
const DEFAULT_AVATAR = '/static/个人头像.png';

// 头像显示策略
export function getUserAvatar(userInfo = {}) {
  // 1. 优先使用用户设置的头像
  if (userInfo.avatar && userInfo.avatar.trim()) {
    return userInfo.avatar;
  }
  
  // 2. 使用默认头像
  return DEFAULT_AVATAR;
}

// 头像错误处理
export function getAvatarErrorHandler() {
  return function(e) {
    console.warn('头像加载失败，使用默认头像:', e);
    // 设置默认头像
    e.target.src = DEFAULT_AVATAR;
  };
}

// 获取用户信息（从本地存储）
export function getLocalUserInfo() {
  try {
    const userInfo = uni.getStorageSync('userInfo') || {};
    return userInfo;
  } catch (e) {
    console.error('获取用户信息失败:', e);
    return {};
  }
}

// 更新用户头像
export function updateUserAvatar(newAvatar) {
  try {
    const userInfo = getLocalUserInfo();
    userInfo.avatar = newAvatar;
    uni.setStorageSync('userInfo', userInfo);
    return true;
  } catch (e) {
    console.error('更新用户头像失败:', e);
    return false;
  }
}

// 头像上传处理
export function uploadAvatar(filePath) {
  return new Promise((resolve, reject) => {
    // 这里可以调用后端API上传头像
    // 暂时直接返回文件路径
    try {
      const success = updateUserAvatar(filePath);
      if (success) {
        resolve(filePath);
      } else {
        reject(new Error('更新头像失败'));
      }
    } catch (e) {
      reject(e);
    }
  });
}
